174 lines
24 KiB
Plaintext
174 lines
24 KiB
Plaintext
import { inspect } from "/_nuxt/node_modules/graphql/jsutils/inspect.mjs?v=e4f18c29";
|
|
import { invariant } from "/_nuxt/node_modules/graphql/jsutils/invariant.mjs?v=e4f18c29";
|
|
import { keyValMap } from "/_nuxt/node_modules/graphql/jsutils/keyValMap.mjs?v=e4f18c29";
|
|
import { naturalCompare } from "/_nuxt/node_modules/graphql/jsutils/naturalCompare.mjs?v=e4f18c29";
|
|
import {
|
|
GraphQLEnumType,
|
|
GraphQLInputObjectType,
|
|
GraphQLInterfaceType,
|
|
GraphQLList,
|
|
GraphQLNonNull,
|
|
GraphQLObjectType,
|
|
GraphQLUnionType,
|
|
isEnumType,
|
|
isInputObjectType,
|
|
isInterfaceType,
|
|
isListType,
|
|
isNonNullType,
|
|
isObjectType,
|
|
isScalarType,
|
|
isUnionType,
|
|
} from "/_nuxt/node_modules/graphql/type/definition.mjs?v=e4f18c29";
|
|
import { GraphQLDirective } from "/_nuxt/node_modules/graphql/type/directives.mjs?v=e4f18c29";
|
|
import { isIntrospectionType } from "/_nuxt/node_modules/graphql/type/introspection.mjs?v=e4f18c29";
|
|
import { GraphQLSchema } from "/_nuxt/node_modules/graphql/type/schema.mjs?v=e4f18c29";
|
|
/**
|
|
* Sort GraphQLSchema.
|
|
*
|
|
* This function returns a sorted copy of the given GraphQLSchema.
|
|
*/
|
|
|
|
export function lexicographicSortSchema(schema) {
|
|
const schemaConfig = schema.toConfig();
|
|
const typeMap = keyValMap(
|
|
sortByName(schemaConfig.types),
|
|
(type) => type.name,
|
|
sortNamedType,
|
|
);
|
|
return new GraphQLSchema({
|
|
...schemaConfig,
|
|
types: Object.values(typeMap),
|
|
directives: sortByName(schemaConfig.directives).map(sortDirective),
|
|
query: replaceMaybeType(schemaConfig.query),
|
|
mutation: replaceMaybeType(schemaConfig.mutation),
|
|
subscription: replaceMaybeType(schemaConfig.subscription),
|
|
});
|
|
|
|
function replaceType(type) {
|
|
if (isListType(type)) {
|
|
// @ts-expect-error
|
|
return new GraphQLList(replaceType(type.ofType));
|
|
} else if (isNonNullType(type)) {
|
|
// @ts-expect-error
|
|
return new GraphQLNonNull(replaceType(type.ofType));
|
|
} // @ts-expect-error FIXME: TS Conversion
|
|
|
|
return replaceNamedType(type);
|
|
}
|
|
|
|
function replaceNamedType(type) {
|
|
return typeMap[type.name];
|
|
}
|
|
|
|
function replaceMaybeType(maybeType) {
|
|
return maybeType && replaceNamedType(maybeType);
|
|
}
|
|
|
|
function sortDirective(directive) {
|
|
const config = directive.toConfig();
|
|
return new GraphQLDirective({
|
|
...config,
|
|
locations: sortBy(config.locations, (x) => x),
|
|
args: sortArgs(config.args),
|
|
});
|
|
}
|
|
|
|
function sortArgs(args) {
|
|
return sortObjMap(args, (arg) => ({ ...arg, type: replaceType(arg.type) }));
|
|
}
|
|
|
|
function sortFields(fieldsMap) {
|
|
return sortObjMap(fieldsMap, (field) => ({
|
|
...field,
|
|
type: replaceType(field.type),
|
|
args: field.args && sortArgs(field.args),
|
|
}));
|
|
}
|
|
|
|
function sortInputFields(fieldsMap) {
|
|
return sortObjMap(fieldsMap, (field) => ({
|
|
...field,
|
|
type: replaceType(field.type),
|
|
}));
|
|
}
|
|
|
|
function sortTypes(array) {
|
|
return sortByName(array).map(replaceNamedType);
|
|
}
|
|
|
|
function sortNamedType(type) {
|
|
if (isScalarType(type) || isIntrospectionType(type)) {
|
|
return type;
|
|
}
|
|
|
|
if (isObjectType(type)) {
|
|
const config = type.toConfig();
|
|
return new GraphQLObjectType({
|
|
...config,
|
|
interfaces: () => sortTypes(config.interfaces),
|
|
fields: () => sortFields(config.fields),
|
|
});
|
|
}
|
|
|
|
if (isInterfaceType(type)) {
|
|
const config = type.toConfig();
|
|
return new GraphQLInterfaceType({
|
|
...config,
|
|
interfaces: () => sortTypes(config.interfaces),
|
|
fields: () => sortFields(config.fields),
|
|
});
|
|
}
|
|
|
|
if (isUnionType(type)) {
|
|
const config = type.toConfig();
|
|
return new GraphQLUnionType({
|
|
...config,
|
|
types: () => sortTypes(config.types),
|
|
});
|
|
}
|
|
|
|
if (isEnumType(type)) {
|
|
const config = type.toConfig();
|
|
return new GraphQLEnumType({
|
|
...config,
|
|
values: sortObjMap(config.values, (value) => value),
|
|
});
|
|
}
|
|
|
|
if (isInputObjectType(type)) {
|
|
const config = type.toConfig();
|
|
return new GraphQLInputObjectType({
|
|
...config,
|
|
fields: () => sortInputFields(config.fields),
|
|
});
|
|
}
|
|
/* c8 ignore next 3 */
|
|
// Not reachable, all possible types have been considered.
|
|
|
|
false || invariant(false, 'Unexpected type: ' + inspect(type));
|
|
}
|
|
}
|
|
|
|
function sortObjMap(map, sortValueFn) {
|
|
const sortedMap = Object.create(null);
|
|
|
|
for (const key of Object.keys(map).sort(naturalCompare)) {
|
|
sortedMap[key] = sortValueFn(map[key]);
|
|
}
|
|
|
|
return sortedMap;
|
|
}
|
|
|
|
function sortByName(array) {
|
|
return sortBy(array, (obj) => obj.name);
|
|
}
|
|
|
|
function sortBy(array, mapToKey) {
|
|
return array.slice().sort((obj1, obj2) => {
|
|
const key1 = mapToKey(obj1);
|
|
const key2 = mapToKey(obj2);
|
|
return naturalCompare(key1, key2);
|
|
});
|
|
}
|
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxleGljb2dyYXBoaWNTb3J0U2NoZW1hLm1qcz92PWU0ZjE4YzI5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluc3BlY3QgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2pzdXRpbHMvaW5zcGVjdC5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsgaW52YXJpYW50IH0gZnJvbSBcIi9fbnV4dC9ub2RlX21vZHVsZXMvZ3JhcGhxbC9qc3V0aWxzL2ludmFyaWFudC5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsga2V5VmFsTWFwIH0gZnJvbSBcIi9fbnV4dC9ub2RlX21vZHVsZXMvZ3JhcGhxbC9qc3V0aWxzL2tleVZhbE1hcC5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsgbmF0dXJhbENvbXBhcmUgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2pzdXRpbHMvbmF0dXJhbENvbXBhcmUubWpzP3Y9ZTRmMThjMjlcIjtcbmltcG9ydCB7XG4gIEdyYXBoUUxFbnVtVHlwZSxcbiAgR3JhcGhRTElucHV0T2JqZWN0VHlwZSxcbiAgR3JhcGhRTEludGVyZmFjZVR5cGUsXG4gIEdyYXBoUUxMaXN0LFxuICBHcmFwaFFMTm9uTnVsbCxcbiAgR3JhcGhRTE9iamVjdFR5cGUsXG4gIEdyYXBoUUxVbmlvblR5cGUsXG4gIGlzRW51bVR5cGUsXG4gIGlzSW5wdXRPYmplY3RUeXBlLFxuICBpc0ludGVyZmFjZVR5cGUsXG4gIGlzTGlzdFR5cGUsXG4gIGlzTm9uTnVsbFR5cGUsXG4gIGlzT2JqZWN0VHlwZSxcbiAgaXNTY2FsYXJUeXBlLFxuICBpc1VuaW9uVHlwZSxcbn0gZnJvbSBcIi9fbnV4dC9ub2RlX21vZHVsZXMvZ3JhcGhxbC90eXBlL2RlZmluaXRpb24ubWpzP3Y9ZTRmMThjMjlcIjtcbmltcG9ydCB7IEdyYXBoUUxEaXJlY3RpdmUgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL3R5cGUvZGlyZWN0aXZlcy5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsgaXNJbnRyb3NwZWN0aW9uVHlwZSB9IGZyb20gXCIvX251eHQvbm9kZV9tb2R1bGVzL2dyYXBocWwvdHlwZS9pbnRyb3NwZWN0aW9uLm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBHcmFwaFFMU2NoZW1hIH0gZnJvbSBcIi9fbnV4dC9ub2RlX21vZHVsZXMvZ3JhcGhxbC90eXBlL3NjaGVtYS5tanM/dj1lNGYxOGMyOVwiO1xuLyoqXG4gKiBTb3J0IEdyYXBoUUxTY2hlbWEuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgc29ydGVkIGNvcHkgb2YgdGhlIGdpdmVuIEdyYXBoUUxTY2hlbWEuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGxleGljb2dyYXBoaWNTb3J0U2NoZW1hKHNjaGVtYSkge1xuICBjb25zdCBzY2hlbWFDb25maWcgPSBzY2hlbWEudG9Db25maWcoKTtcbiAgY29uc3QgdHlwZU1hcCA9IGtleVZhbE1hcChcbiAgICBzb3J0QnlOYW1lKHNjaGVtYUNvbmZpZy50eXBlcyksXG4gICAgKHR5cGUpID0+IHR5cGUubmFtZSxcbiAgICBzb3J0TmFtZWRUeXBlLFxuICApO1xuICByZXR1cm4gbmV3IEdyYXBoUUxTY2hlbWEoe1xuICAgIC4uLnNjaGVtYUNvbmZpZyxcbiAgICB0eXBlczogT2JqZWN0LnZhbHVlcyh0eXBlTWFwKSxcbiAgICBkaXJlY3RpdmVzOiBzb3J0QnlOYW1lKHNjaGVtYUNvbmZpZy5kaXJlY3RpdmVzKS5tYXAoc29ydERpcmVjdGl2ZSksXG4gICAgcXVlcnk6IHJlcGxhY2VNYXliZVR5cGUoc2NoZW1hQ29uZmlnLnF1ZXJ5KSxcbiAgICBtdXRhdGlvbjogcmVwbGFjZU1heWJlVHlwZShzY2hlbWFDb25maWcubXV0YXRpb24pLFxuICAgIHN1YnNjcmlwdGlvbjogcmVwbGFjZU1heWJlVHlwZShzY2hlbWFDb25maWcuc3Vic2NyaXB0aW9uKSxcbiAgfSk7XG5cbiAgZnVuY3Rpb24gcmVwbGFjZVR5cGUodHlwZSkge1xuICAgIGlmIChpc0xpc3RUeXBlKHR5cGUpKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICByZXR1cm4gbmV3IEdyYXBoUUxMaXN0KHJlcGxhY2VUeXBlKHR5cGUub2ZUeXBlKSk7XG4gICAgfSBlbHNlIGlmIChpc05vbk51bGxUeXBlKHR5cGUpKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICByZXR1cm4gbmV3IEdyYXBoUUxOb25OdWxsKHJlcGxhY2VUeXBlKHR5cGUub2ZUeXBlKSk7XG4gICAgfSAvLyBAdHMtZXhwZWN0LWVycm9yIEZJWE1FOiBUUyBDb252ZXJzaW9uXG5cbiAgICByZXR1cm4gcmVwbGFjZU5hbWVkVHlwZSh0eXBlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlcGxhY2VOYW1lZFR5cGUodHlwZSkge1xuICAgIHJldHVybiB0eXBlTWFwW3R5cGUubmFtZV07XG4gIH1cblxuICBmdW5jdGlvbiByZXBsYWNlTWF5YmVUeXBlKG1heWJlVHlwZSkge1xuICAgIHJldHVybiBtYXliZVR5cGUgJiYgcmVwbGFjZU5hbWVkVHlwZShtYXliZVR5cGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gc29ydERpcmVjdGl2ZShkaXJlY3RpdmUpIHtcbiAgICBjb25zdCBjb25maWcgPSBkaXJlY3RpdmUudG9Db25maWcoKTtcbiAgICByZXR1cm4gbmV3IEdyYXBoUUxEaXJlY3RpdmUoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgbG9jYXRpb25zOiBzb3J0QnkoY29uZmlnLmxvY2F0aW9ucywgKHgpID0+IHgpLFxuICAgICAgYXJnczogc29ydEFyZ3MoY29uZmlnLmFyZ3MpLFxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gc29ydEFyZ3MoYXJncykge1xuICAgIHJldHVybiBzb3J0T2JqTWFwKGFyZ3MsIChhcmcpID0+ICh7IC4uLmFyZywgdHlwZTogcmVwbGFjZVR5cGUoYXJnLnR5cGUpIH0pKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNvcnRGaWVsZHMoZmllbGRzTWFwKSB7XG4gICAgcmV0dXJuIHNvcnRPYmpNYXAoZmllbGRzTWFwLCAoZmllbGQpID0+ICh7XG4gICAgICAuLi5maWVsZCxcbiAgICAgIHR5cGU6IHJlcGxhY2VUeXBlKGZpZWxkLnR5cGUpLFxuICAgICAgYXJnczogZmllbGQuYXJncyAmJiBzb3J0QXJncyhmaWVsZC5hcmdzKSxcbiAgICB9KSk7XG4gIH1cblxuICBmdW5jdGlvbiBzb3J0SW5wdXRGaWVsZHMoZmllbGRzTWFwKSB7XG4gICAgcmV0dXJuIHNvcnRPYmpNYXAoZmllbGRzTWFwLCAoZmllbGQpID0+ICh7XG4gICAgICAuLi5maWVsZCxcbiAgICAgIHR5cGU6IHJlcGxhY2VUeXBlKGZpZWxkLnR5cGUpLFxuICAgIH0pKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNvcnRUeXBlcyhhcnJheSkge1xuICAgIHJldHVybiBzb3J0QnlOYW1lKGFycmF5KS5tYXAocmVwbGFjZU5hbWVkVHlwZSk7XG4gIH1cblxuICBmdW5jdGlvbiBzb3J0TmFtZWRUeXBlKHR5cGUpIHtcbiAgICBpZiAoaXNTY2FsYXJUeXBlKHR5cGUpIHx8IGlzSW50cm9zcGVjdGlvblR5cGUodHlwZSkpIHtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cblxuICAgIGlmIChpc09iamVjdFR5cGUodHlwZSkpIHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHR5cGUudG9Db25maWcoKTtcbiAgICAgIHJldHVybiBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIGludGVyZmFjZXM6ICgpID0+IHNvcnRUeXBlcyhjb25maWcuaW50ZXJmYWNlcyksXG4gICAgICAgIGZpZWxkczogKCkgPT4gc29ydEZpZWxkcyhjb25maWcuZmllbGRzKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc0ludGVyZmFjZVR5cGUodHlwZSkpIHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHR5cGUudG9Db25maWcoKTtcbiAgICAgIHJldHVybiBuZXcgR3JhcGhRTEludGVyZmFjZVR5cGUoe1xuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIGludGVyZmFjZXM6ICgpID0+IHNvcnRUeXBlcyhjb25maWcuaW50ZXJmYWNlcyksXG4gICAgICAgIGZpZWxkczogKCkgPT4gc29ydEZpZWxkcyhjb25maWcuZmllbGRzKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc1VuaW9uVHlwZSh0eXBlKSkge1xuICAgICAgY29uc3QgY29uZmlnID0gdHlwZS50b0NvbmZpZygpO1xuICAgICAgcmV0dXJuIG5ldyBHcmFwaFFMVW5pb25UeXBlKHtcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICB0eXBlczogKCkgPT4gc29ydFR5cGVzKGNvbmZpZy50eXBlcyksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoaXNFbnVtVHlwZSh0eXBlKSkge1xuICAgICAgY29uc3QgY29uZmlnID0gdHlwZS50b0NvbmZpZygpO1xuICAgICAgcmV0dXJuIG5ldyBHcmFwaFFMRW51bVR5cGUoe1xuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHZhbHVlczogc29ydE9iak1hcChjb25maWcudmFsdWVzLCAodmFsdWUpID0+IHZhbHVlKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc0lucHV0T2JqZWN0VHlwZSh0eXBlKSkge1xuICAgICAgY29uc3QgY29uZmlnID0gdHlwZS50b0NvbmZpZygpO1xuICAgICAgcmV0dXJuIG5ldyBHcmFwaFFMSW5wdXRPYmplY3RUeXBlKHtcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBmaWVsZHM6ICgpID0+IHNvcnRJbnB1dEZpZWxkcyhjb25maWcuZmllbGRzKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgLy8gTm90IHJlYWNoYWJsZSwgYWxsIHBvc3NpYmxlIHR5cGVzIGhhdmUgYmVlbiBjb25zaWRlcmVkLlxuXG4gICAgZmFsc2UgfHwgaW52YXJpYW50KGZhbHNlLCAnVW5leHBlY3RlZCB0eXBlOiAnICsgaW5zcGVjdCh0eXBlKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc29ydE9iak1hcChtYXAsIHNvcnRWYWx1ZUZuKSB7XG4gIGNvbnN0IHNvcnRlZE1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobWFwKS5zb3J0KG5hdHVyYWxDb21wYXJlKSkge1xuICAgIHNvcnRlZE1hcFtrZXldID0gc29ydFZhbHVlRm4obWFwW2tleV0pO1xuICB9XG5cbiAgcmV0dXJuIHNvcnRlZE1hcDtcbn1cblxuZnVuY3Rpb24gc29ydEJ5TmFtZShhcnJheSkge1xuICByZXR1cm4gc29ydEJ5KGFycmF5LCAob2JqKSA9PiBvYmoubmFtZSk7XG59XG5cbmZ1bmN0aW9uIHNvcnRCeShhcnJheSwgbWFwVG9LZXkpIHtcbiAgcmV0dXJuIGFycmF5LnNsaWNlKCkuc29ydCgob2JqMSwgb2JqMikgPT4ge1xuICAgIGNvbnN0IGtleTEgPSBtYXBUb0tleShvYmoxKTtcbiAgICBjb25zdCBrZXkyID0gbWFwVG9LZXkob2JqMik7XG4gICAgcmV0dXJuIG5hdHVyYWxDb21wYXJlKGtleTEsIGtleTIpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ3BGLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDeEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUN4RixNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ2xHLE1BQU0sQ0FBQztBQUNQLENBQUMsQ0FBQyxlQUFlO0FBQ2pCLENBQUMsQ0FBQyxzQkFBc0I7QUFDeEIsQ0FBQyxDQUFDLG9CQUFvQjtBQUN0QixDQUFDLENBQUMsV0FBVztBQUNiLENBQUMsQ0FBQyxjQUFjO0FBQ2hCLENBQUMsQ0FBQyxpQkFBaUI7QUFDbkIsQ0FBQyxDQUFDLGdCQUFnQjtBQUNsQixDQUFDLENBQUMsVUFBVTtBQUNaLENBQUMsQ0FBQyxpQkFBaUI7QUFDbkIsQ0FBQyxDQUFDLGVBQWU7QUFDakIsQ0FBQyxDQUFDLFVBQVU7QUFDWixDQUFDLENBQUMsYUFBYTtBQUNmLENBQUMsQ0FBQyxZQUFZO0FBQ2QsQ0FBQyxDQUFDLFlBQVk7QUFDZCxDQUFDLENBQUMsV0FBVztBQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDbkUsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQzdGLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUNuRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ3RGLENBQUMsQ0FBQztBQUNGLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhO0FBQ3JCLENBQUM7QUFDRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhO0FBQ2pFLENBQUMsQ0FBQzs7QUFFRixNQUFNLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7QUFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztBQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7QUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhO0FBQ2pCLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO0FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWTtBQUNuQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO0FBQ3RFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7QUFDckQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO0FBQzdELENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7O0FBRXBDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztBQUNqQyxDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUM3QixDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO0FBQ25ELENBQUMsQ0FBQzs7QUFFRixDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtBQUNmLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztBQUM5QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDOztBQUVGLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztBQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNsRCxDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtBQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVKLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVKLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUM7QUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVKLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7QUFDbEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDM0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQ3BELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTs7QUFFN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUNGOztBQUVBLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDOztBQUV2QyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTO0FBQ2xCOztBQUVBLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ3pDOztBQUVBLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKOyJ9 |